In a generate and test algorithm, combining part of the filter
with the generator in order to reduce the number of potential
solutions generated. A trivial example:
filter ( 100) [1..1000] == [1..99]
where [1..n] generates the list of integers from 1 to n. Here
the filter has been combined completely with the generator.